package com.sg.dto.integration.app;


import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @desc StandardDataDto
 * @使用场景
 */
@Data
public class StandardDataDto extends BaseDto implements Serializable {

    /**
     * 数据结果ID:
     */
    @ApiModelProperty("数据结果ID ")
    private String dataResultId;

    /**
     * 归属内容表主键ID:
     */
    @ApiModelProperty("归属内容表主键ID")
    private String entityId;

    /**
     * 冗余单位:
     */
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 数据值结果:
     */
    @ApiModelProperty("数据值结果")
    private Double dataResult;

    /**
     * 数据类型编码:
     */
    @ApiModelProperty("数据类型编码")
    private String dataType;

    /**
     * 上一数据结果ID:
     */
    @ApiModelProperty("上一数据结果ID")
    private String parentDataResultId;

    /**
     * 上一数据值结果:
     */
    @ApiModelProperty("上一数据值结果")
    private Double parentDataResult;

    /**
     * 主体生命周期:
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 创建人就职记录ID:
     */
    @ApiModelProperty("创建人就职记录ID")
    private String createInductionId;

    /**
     * 创建时间:
     */
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
     * 来自内容表主键ID
     */
    @ApiModelProperty("来自内容表主键ID")
    private String fromContentEntityId;

    /**
     * 进度值
     */
    @ApiModelProperty("进度值")
    private Double progressValue;

    /**
     * 进度值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度值单位")
    private String progressValueUnit;

    /**
     * 进度较上次变化值
     */
    @ApiModelProperty("进度较上次变化值")
    private Double fromLastProgressValue;

    /**
     * 进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度较上次变化值单位")
    private String fromLastProgressValueUnit;

    /**
     * 进度较上次增降幅
     */
    @ApiModelProperty("进度较上次增降幅")
    private Double progressFromLastRatio;

    /**
     * 进度较上次增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度较上次增降幅单位")
    private String progressFromLastRatioUnit;

    /**
     * 实际值
     */
    @ApiModelProperty("实际值")
    private Double actualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("实际值单位")
    private String actualValueUnit;

    /**
     * 较上次目标变化值
     */
    @ApiModelProperty("较上次目标变化值")
    private Double changeFromLastTarget;

    /**
     * 较上次目标变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标变化值单位")
    private String changeFromLastTargetUnit;

    /**
     * 较上次目标增降幅
     */
    @ApiModelProperty("较上次目标增降幅")
    private Double fromLastTargetLiftRatio;

    /**
     * 较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标增降幅单位")
    private String fromLastTargetLiftRatioUnit;

    /**
     * 达成度（数值）
     */
    @ApiModelProperty("达成度（数值）")
    private Double reach;

    /**
     * 达成度单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度单位")
    private String reachUnit;

    /**
     * 达成度较上次变化值
     */
    @ApiModelProperty("达成度较上次变化值")
    private Double fromLastReach;

    /**
     * 达成度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度较上次变化值单位")
    private String fromLastReachUnit;

    /**
     * 达成度较上次增降福
     */
    @ApiModelProperty("达成度较上次增降福")
    private Double actualFromLastTimeRatio;

    /**
     * 达成度较上次增降福单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度较上次增降福单位")
    private String actualFromLastTimeRatioUnit;

    /**
     * 汇报得分（数值）
     */
    @ApiModelProperty("汇报得分（数值）")
    private Double reportScoreValue;

    /**
     * 汇报得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("汇报得分单位")
    private String reportScoreUnit;

    /**
     * 实际得分（数值）
     */
    @ApiModelProperty("实际得分（数值）")
    private Double actualScoreValue;

    /**
     * 实际得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("实际得分单位")
    private String actualScoreUnit;
    /**
     * 汇报得分（文本）
     */
    @ApiModelProperty("汇报得分（文本）")
    private String reportScore;

    /**
     * 实际得分（文本）
     */
    @ApiModelProperty("实际得分（文本）")
    private String actualScore;
    /**
     * 实时得分
     */
    @ApiModelProperty("实时得分")
    private String realTimeScore;
    /**
     * 工作周期更新切片
     */
    @ApiModelProperty("工作周期更新切片")
    private String workCycleUpdateSlice;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        StandardDataDto that = (StandardDataDto) o;
        return dataResultId == that.dataResultId && entityId == that.entityId && unit == that.unit && dataResult == that.dataResult && dataType == that.dataType && parentDataResultId == that.parentDataResultId && parentDataResult == that.parentDataResult && subjectLifeCycle == that.subjectLifeCycle && createInductionId == that.createInductionId && createTime == that.createTime && fromContentEntityId == that.fromContentEntityId && progressValue == that.progressValue && progressValueUnit == that.progressValueUnit && fromLastProgressValue == that.fromLastProgressValue && fromLastProgressValueUnit == that.fromLastProgressValueUnit && progressFromLastRatio == that.progressFromLastRatio && progressFromLastRatioUnit == that.progressFromLastRatioUnit && actualValue == that.actualValue && actualValueUnit == that.actualValueUnit && changeFromLastTarget == that.changeFromLastTarget && changeFromLastTargetUnit == that.changeFromLastTargetUnit && fromLastTargetLiftRatio == that.fromLastTargetLiftRatio && fromLastTargetLiftRatioUnit == that.fromLastTargetLiftRatioUnit && reach == that.reach && reachUnit == that.reachUnit && fromLastReach == that.fromLastReach && fromLastReachUnit == that.fromLastReachUnit && actualFromLastTimeRatio == that.actualFromLastTimeRatio && actualFromLastTimeRatioUnit == that.actualFromLastTimeRatioUnit && reportScoreValue == that.reportScoreValue && reportScoreUnit == that.reportScoreUnit && actualScoreValue == that.actualScoreValue && actualScoreUnit == that.actualScoreUnit && reportScore == that.reportScore && actualScore == that.actualScore && realTimeScore == that.realTimeScore && workCycleUpdateSlice == that.workCycleUpdateSlice;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), dataResultId, entityId, unit, dataResult, dataType, parentDataResultId, parentDataResult, subjectLifeCycle, createInductionId, createTime, fromContentEntityId, progressValue, progressValueUnit, fromLastProgressValue, fromLastProgressValueUnit, progressFromLastRatio, progressFromLastRatioUnit, actualValue, actualValueUnit, changeFromLastTarget, changeFromLastTargetUnit, fromLastTargetLiftRatio, fromLastTargetLiftRatioUnit, reach, reachUnit, fromLastReach, fromLastReachUnit, actualFromLastTimeRatio, actualFromLastTimeRatioUnit, reportScoreValue, reportScoreUnit, actualScoreValue, actualScoreUnit, reportScore, actualScore, realTimeScore, workCycleUpdateSlice);
    }

}
